Eggplant DAIでのサブモデルの使用
大規模または複雑なアプリケーションやシステムをモデリングする際、モデルの作成にモジュラーなアプローチを取ると便利かもしれません。モジュラリゼーションを促進するため、Eggplant DAIでは_サブモデル_を使用することができます。サブモデルは、他のモデルのアクションに接続するモデルで、コードスニペットを接続するのと同じ方法で接続します。これにより、より小さいモジュラー化されたパーツから大きなモデルを構築することができます。
サブモデルの使用
モデルを作成する際、アプリケーションの個々のセクションやサブシステムに焦点を当てて、テストする必要がある全体像を徐々に作り上げることがあります。このアプローチを最初から取ると、アプリケーションのすべてのパーツをまとめるために、Eggplant DAIでサブモデルを使用する方法がわかりやすくなるはずです。
このアプローチを用いると、アプリケーションのセクションを独立してテストすることができ、また独立したモデルをトップレベルのモデルにまとめて、セクションのモデルをサブモデルとしてリンクすることで包括的なテストを行う ことができます。アクション内でサブモデルをリンクすることで、アプリケーションを記述するためのモデルの異なるレベルの階層を定義することができます。アクションを選択する際、Eggplant DAIのパス選択アルゴリズムは、まだ通過していないサブモデル内のパスを考慮します。
モデルアクションにサブモデルをリンクする
アクセスできる限り、どのモデルでもサブモデルとして使用することができます。
モデルを編集すると、サブモデルタブに、サブモデルとして利用可能なすべてのモデルが表示されます。表示されるモデルの数を絞り込むには、フィルターボックスにモデル名を入力するだけです。
モデルをサブモデルとして追加するには:
- モデルで、サブモデルタブを選択し、サブモデルを接続したいアクションを選択します。
- サブモデルタブで、接続したいモデル名の隣にある矢印をクリックします。
各アクションには左上に2つのドットがあります。サブモデルが接続されていると、右側のドットが緑色に変わります。左側のドットはスニペットが接続されていることを示します。緑色のドットの上にカーソルを置くと、どのスニペットやサブモデルが接続されているかを示すツールチップが表示されます。
スニペットとサブモデルを同じアクションに接続することができます。スニペットとサブモデルが同じアクションに接続されている場合、先にスニペットが実行され、次にサブモデルが実行されます。
サブモデルを使ったテストの実行
サブモデルを用いたテストの実行は、Eggplant DAIの他のテスト実行と何も変わりません。ツールバーでRunをクリックし、モデル実行のオプションを選択すると、モデルは初期状態から始まり、モデルを通じてパスを選択します。サブモデルが接続されたアクションを選択すると、実行はその二次モデルに切り替わります。
コンソールでは、モデルがサブモデルを呼び出し、そこで何が実行されているかを見ることができます。ただし、モデルビューは変わらず、サブモデルを呼び出した単一のハイライトされたアクションを表示します。
親モデルを通じて実行されるサブモデルは、親モデルと同じスイートを使用します。
サブモデルが成功して終了すると、親モデルの実行がその地点から再開されます。これは、接続されたスニペットの場合と同じです。
テスト実行からサブモデルを除外したい場合は、アクション プロパティタブで無効を選択します。
また、向けられたテストケースにサブモデルを含めることもできます。
サブモデルとパラメータの使用
サブモデルと親モデルの間でパラメータ値を渡すことができます。たとえば、サブモデル内で特定のパスを設定するためにこの機能を使用することがあります。または、実行中にサブモデルの特定の状態やアクションがヒットしたかどうかをチェックするために戻り値を使用することができます。
親モデルとサブモデルの両方でパラメータをグローバルパラメータとして定義する必要があります。つまり、パラメータ名と定義は両方のモデルで一致する必要があります。そのようなパラメータは、他のグローバルパラメータと同様に作成できます。状態やアクションが選択されていない状態で、以下のオプションのいずれかを選択します:
- モデルワークスペースで右クリックし、新規パラメータを選択します。
- 右側のサイドバーのグローバルプロパティタブで、グローバルパラメータセクションで新規をクリックします。
新しいパラメータは、グローバルパラメータセクションにデフォルトの名前で行として表示されます。必要に応じて名前、タイプ、生成メソッド、初期値をカスタマイズするためにフィールドをクリックできます。
親モデルとサブモデルの両方でパラメータを作成する必要があることを忘れないでください。
パラメータを作成した後、親モデルでそれらをサブモデルに関連付ける必要があります:
-
ワークスペースでサブモデルが添付されているアクションを選択します。
-
右ペインのアクションプロパティタブのアクションによって呼び出されるサブモデルセクションで、添付されたサブモデルを右クリックし、パススルーパラメータを編集を選択します。
-
サブモデルI/Oエディタダイアログボックスで、サブモデルと親モデル間で渡したいパラメータに対して選択済み列のチェックボックスを選択します。OKをクリックしてダイアログボックスを閉じ、選択した内容を保存します。
サブモデルに渡すパラメータに値がある場合、その値はサブモデルのパラメータに設定されている可能性のある初期値を上書きします。
パラメータ値がサブモデルの実行中に更新され、親モデルに戻されると、新しい値はサブモデルが終了するときに親モデルのパラメータを上書きします。